package com.yang.edu;

import java.lang.reflect.Proxy;
import java.util.ResourceBundle;

/**
 * @Description: 配置类, 可以来解析XML配置文件
 * @author: Yang Qiang
 * @create: 2021-11-09 21:09
 */
public class YangConfiguration {

    // 解析配置文件的工具类
    private ResourceBundle SQLMap = null;

    public YangConfiguration() {
        // 得到resource文件下面的sql.文件
        this.SQLMap = ResourceBundle.getBundle("sql");
    }

    public ResourceBundle getSQLMap() {
        return SQLMap;
    }

    /**
     * 得到mapper接口的代理类, 也就是创建代理类
     * @param mapperClass
     * @param yangSqlSession
     * @param <T>
     * @return
     */
    public <T> T getMapper(Class mapperClass, YangSqlSession yangSqlSession) {
        return (T) Proxy.newProxyInstance(this.getClass().getClassLoader(),
                new Class[]{mapperClass},
                new YangMapperProxy(yangSqlSession));
    }
}
